Gas Station

Problem page:https://leetcode.com/problems/gas-station

Solution

class Solution:
    def canCompleteCircuit(self, gas: List[int], cost: List[int]) -> int:
        s_cost, s_gas = sum(cost), sum(gas)
        if s_cost > s_gas:
            return -1
        c_gas, idx = 0, 0
        for i in range(len(gas)):
            c_gas += gas[i] - cost[i]
            if c_gas < 0:
                c_gas = 0
                idx = i + 1
        return idx

Complexity

  • time: O(n)
  • space: O(1)